﻿using System.Windows.Media;

namespace Red.Scripts.Defines.Utilities
{
    public static class Wpf
    {
        public static T GetVisualChild<T>( Visual parent ) where T : Visual
        {
            T child = default( T );

            int numVisuals = VisualTreeHelper.GetChildrenCount( parent );
            for ( int i = 0; i < numVisuals; ++i )
            {
                Visual v = (Visual)VisualTreeHelper.GetChild( parent, i );
                child = v as T;

                if ( child == null )
                {
                    child = GetVisualChild<T>( v );
                }

                if ( child != null )
                {
                    break;
                }
            }

            return child;
        }
    }
}
